home *** CD-ROM | disk | FTP | other *** search
/ Java Programmer's Toolkit / Java Programmer's Toolkit.iso / applets / collectn / defaulti.jav < prev    next >
Text File  |  1995-10-14  |  3KB  |  86 lines

  1. /*
  2.   File: DefaultImplementations.java
  3.  
  4.   Originally written by Doug Lea and released into the public domain. 
  5.   Thanks for the assistance and support of Sun Microsystems Labs, Agorics 
  6.   Inc, Loral, and everyone contributing, testing, and using this code.
  7.  
  8.   History:
  9.   Date     Who                What
  10.   24Sep95  dl@cs.oswego.edu   Create from collections.java  working file
  11.   13Oct95  dl                 Changed protection statuses
  12.  
  13. */
  14.   
  15. package collections;
  16.  
  17. import java.util.Enumeration;
  18. import java.util.NoSuchElementException;
  19.  
  20. /**
  21.  *
  22.  *
  23.  * DefaultImplementations contains only static methods
  24.  * that make reasonable default choices for implementations
  25.  * of the principal updatable collection types.
  26.  * @author Doug Lea
  27.  * @version 0.93
  28.  *
  29.  * <P> For an introduction to this package see <A HREF="index.html"> Overview </A>.
  30. **/
  31.  
  32. public class DefaultImplementations {
  33.  
  34.   public static UpdatableSet   set()         { 
  35.     return new HashedSet();
  36.   }
  37.   public static UpdatableBag   bag()         { 
  38.     return new LinkedBuffer();
  39.   }
  40.   public static UpdatableBag   sortedBag()   { 
  41.     return new RBTree();
  42.   }
  43.   public static UpdatableSeq   seq()         { 
  44.     return new Dynarray();
  45.   }
  46.   public static UpdatableSeq   seqForQueue() { 
  47.     return new CircularList();
  48.   }
  49.   public static UpdatableMap   map()         { 
  50.     return new HashedMap();
  51.   }
  52.   public static UpdatableMap   sortedMap()   { 
  53.     return new RBMap();
  54.   }
  55.  
  56. /*  TODO
  57.  
  58.  * It would be much better to use Class.forName to avoid pulling 
  59.  * in implementations that aren't needed. But these could fail?
  60.  * Consider options...
  61.  
  62.   public static UpdatableSet   set()         { 
  63.     return (UpdatableSet)(Class.forName("HashedSet").newInstance()); 
  64.   }
  65.   public static UpdatableBag   bag()         { 
  66.     return (UpdatableBag)(Class.forName("LinkedBuffer").newInstance()); 
  67.   }
  68.   public static UpdatableBag   sortedBag()   { 
  69.     return (UpdatableSet)(Class.forName("RBTree").newInstance()); 
  70.   }
  71.   public static UpdatableSeq   seq()         { 
  72.     return (UpdatableSeq)(Class.forName("Dynarray").newInstance()); 
  73.   }
  74.   public static UpdatableSeq   seqForQueue() { 
  75.     return (UpdatableSeq)(Class.forName("CircularList").newInstance()); 
  76.   }
  77.   public static UpdatableMap   map()         { 
  78.     return (UpdatableMap)(Class.forName("HashedMap").newInstance()); 
  79.   }
  80.   public static UpdatableMap   sortedMap()   { 
  81.     return (UpdatableMap)(Class.forName("RBMap").newInstance()); 
  82.   }
  83. */  
  84. }
  85.  
  86.